﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>无标题文档</title>
	<script type="text/javascript">
		if (!document.cookie.match(/blackbird=/)) {
			document.cookie = 'blackbird={pos:0,size:0,load:true};';
		}
	</script>
	<script src="../../Debug/blackbird.js" type="text/javascript" charset="utf-8"></script>
	<link type="text/css" rel="Stylesheet" href="../../Debug/blackbird.css" />
	<script type="text/javascript">
		// 创建Object实例的方法有两种，第一种是使用new操作符后面跟Object构造函数，如下例所示：
		var person = new Object();
		person.name = 'make';
		person.age = 18;

		// 第二种是使用对象字面量表示法
		var person1 = {
			name: "make",
			age: 19
		};

		// 使用对象字面量语法时，属性名也可以使用字符串：
		var person2 = {
			'company': "microsoft",
			"name": "hmkhan",
			age: 20
		};

		/**
		* 使用对象字面量定义对象时，不会调用Object构造函数(firefox除外)
		*
		* 虽然可以使用前面介绍的任何一种方法来定义对象，但开发人员跟青昧对象字面量方法语法，因为这种语法要求的代码量少，
		* 而且给人封装数据的感觉，实际上，对象字面量也是想函数传递大量可选参数的首选方式。
		* 
		* 一般来讲，命名参数虽然容易处理，但在有多个可选参数的情况下就会显示不够灵活。最好的做法是对那些必须只使用命名参数，而使用对象字面量来封装多个可选参数。
		*
		* 对象通过应用来传递，它永远不会被拷贝。
		**/

		// 访问对象属性时有两种方法，一种是点表示法，另一种是使用方括号表示法，方括号语法的主要优点是可以通过变量来访问属性。
		// 推荐优先考虑使用点表示法，因为它更紧凑，可读性好。
		log.info(person.name);
		log.info(person2["company"]);
		log.info(person2['name']);
		var propertyName = "age";
		log.info(person[propertyName]);

		// 当尝试检索一个不存在的成员元素的值是，将返回一个undefined值
		//person.tel  // return undefined

		// ||运算符可以用来填充默认值
		log.info(person.tel || '888888');

		// 反射，typeof操作符、hasOwenproperty方法

		// 通过typeof操作符确定属性的类型，
		log.info(typeof person.name);
		// 请务必注意原型链中的任何属性也会产生一个值
		log.info(typeof person.toString);
		log.info(typeof person.constructor);

		log.info(person.hasOwnProperty('name')); // return true
		log.info(person.hasOwnProperty('toString')); // return false

		// 枚举，for in会遍历对象的所有属性名，这时属性名出现的顺序是无序的。
		// 包括函数或你不关心的原型中的属性，可用hasOwnProperty或typeof过滤

	</script>
</head>
<body>
</body>
</html>
